iT邦幫忙

2023 iThome 鐵人賽

DAY 23
0
AI & Data

dbt: 告別過時的SQL開發流程系列 第 23

DAY 23 - dbt Core 入門 (1) - 設定本機環境

  • 分享至 

  • xImage
  •  

相對於 dbt Cloud 為 dbt Labs 提供的 SaaS solution,
dbt Core 為 free open source solution,我們可以自由選擇習慣的環境開發。

dbt Cloud 及 dbt Core 並不是二選一,我們可以依據團隊的人數、技能、預算、使用情境,兩者混合使用。
我個人的經驗是從 dbt Cloud 開始用,在 dbt Cloud 建立的專案,後續也在本機 dbt Core 同時開發。

本文同樣沿用前半段所使用的 dbt project,git clone 至本機。
開發工具選用免費的 VS Code。


準備工作

BigQuery, GitHub, dbt 專案

沿用本系列前半段所建立的 dbt 專案。同樣會用到 BigQuery 以及 GitHub 帳號。

Python, Pip, other dependencies

參考文章 Install with pipDoes my operating system have prerequisites? 的說明

下載並安裝 VS Code

https://code.visualstudio.com/download
https://ithelp.ithome.com.tw/upload/images/20230902/20159575HVGMDqx44o.png

VS Code

Clone Git Repository -> Clone from GitHub -> 選擇系列文章前半段我們所建立的 repo。
https://ithelp.ithome.com.tw/upload/images/20230903/20159575uNhVbUquy3.png

完成後直接開啟專案。
https://ithelp.ithome.com.tw/upload/images/20230903/20159575QVY4cCBXgD.png

在 venv 中安裝 dbt Core

Create and activate venv

此處會依作業系統不同,例如我用 Ubuntu 的指令如下:

建立 venv

python3.11 -m venv venv

Activate venv

source venv/bin/activate

https://ithelp.ithome.com.tw/upload/images/20230903/2015957596zaMzBki2.png

新增 requirements.txt

新增檔案 requirements.txt
檔案內容

dbt-bigquery

安裝 dbt Core

因為我們要連的是 BigQuery 所以就直接依 requirements.txt 安裝 dbt-bigquery。
安裝此套件會連同 dbt Core 及其他套件一同安裝。

pip install -r requirements.txt

https://ithelp.ithome.com.tw/upload/images/20230903/20159575TbV2m42Lvq.png

檢查 dbt Core 版本

安裝完成後,檢查 dbt core 版本

dbt --version

https://ithelp.ithome.com.tw/upload/images/20231008/20159575y8sasK2dMC.png

連接 BigQuery

profiles.yml

建立新檔案 profiles.yml。
內容如下,註解處依照說明自行修改。

原始來源 https://docs.getdbt.com/quickstarts/manual-install?step=2

jaffle_shop: # this needs to match the profile in your dbt_project.yml file
  target: dev
  outputs:
    dev:
      type: bigquery
      method: service-account
      keyfile: /Users/BBaggins/.dbt/dbt-tutorial-project-331118.json # replace this with the full path to your keyfile
      project: grand-highway-265418 # Replace this with your project id
      dataset: dbt_bbagins # Replace this with dbt_your_name, e.g. dbt_bilbo
      threads: 1
      timeout_seconds: 300
      location: US
      priority: interactive

檢查結果

執行指令檢查是否能正確連到 BigQuery

dbt debug

https://ithelp.ithome.com.tw/upload/images/20231008/20159575vJP12SiGN1.png

最後的步驟

Update .gitignore

以上大部分新增的檔案都是本機個人使用,不上 GitHub。
所以需要更新 .gitignore,排除這些檔案。
在 .gitignore 加入

# dbt core
venv
.user.yml
profiles.yml

https://ithelp.ithome.com.tw/upload/images/20230903/20159575jSdJu63HJy.png


今日小結&明日預告

提交今日的變更並更新至GitHub,結束這一天。
請注意除了 requiremnts.txt,今天新增的其他檔案都不該上 Git。
https://ithelp.ithome.com.tw/upload/images/20231008/20159575JX2s1xyWlR.png

明天的主題:在本機開發 dbt Core的基本操作。

參考資料


歡迎加入 dbt community
對 dbt 或 data 有興趣 👋?歡迎加入 dbt community 到 #local-taipei 找我們,也有實體 Meetup 請到 dbt Taipei Meetup 報名參加


上一篇
DAY 22 - dbt 中階 (9) - 排程規劃 & Tags
下一篇
DAY 24 - dbt Core 入門 (2) - 在本機開發的基本操作
系列文
dbt: 告別過時的SQL開發流程30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言